// addressPackage/pages/addMyAddress/addMyAddress.js
import request from '../../../utils/request'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    addressInfo: {},
    addressId: 0
  },

  // 表单项内容发生改变的回调
  // handleInput(event) {
  //   // let type = event.currentTarget.id;// id传值 取值： phone || password
  //   let type = event.currentTarget.dataset.type; // data-key=value
  //   this.setData({
  //     [type]: event.detail.value
  //   })
  //   console.log(this.data.mobile)
  // },

  // 添加地址按钮
  async addAddress(options) {
    // 1. 收集表单项数据
    let {
      mobile,
      address,
      consignee,
      isDefault
    } = options.detail.value
    // 2. 前端验证
    /*
     * 手机号验证：
     *   1. 内容为空
     *   2. 手机号格式不正确
     *   3. 手机号格式正确，验证通过
     * */

    // 验证收货人
    if (!consignee) {
      wx.showToast({
        title: '收货人不能为空',
        icon: 'none'
      })
      return;
    }

    // 验证联系电话
    if (!mobile) {
      // 提示用户
      wx.showToast({
        title: '联系电话不能为空',
        icon: 'none'
      })
      return;
    }
    // 定义正则表达式
    // let mobileReg = /^1(3|4|5|6|7|8|9)\d{9}$/;
    // if (!mobileReg.test(mobile)) {
    //   wx.showToast({
    //     title: '联系电话格式错误',
    //     icon: 'none'
    //   })
    //   return;
    // }

    // 验证收货地址
    if (!address) {
      wx.showToast({
        title: '收货地址不能为空',
        icon: 'none'
      })
      return;
    }

    if (!isDefault || isDefault != 0 || isDefault != 1) {
      this.setData({
        isDefault: 0
      });
    }

    let result = await request('/address/add', {
      mobile,
      address,
      consignee,
      isDefault
    }, 'POST')
    if (result.code === 200) {
      // 响应成功
      wx.showToast({
        title: '添加地址成功！'
      });
      // 跳转回我的地址列表页面
      wx.navigateBack({
        url: '/addressPackage/pages/myAddress/myAddress'
      })
    } else if (result.code === -1) {
      wx.showToast({
        title: result.msg,
        icon: 'none'
      })
    }
  },

  /**
   * 修改地址
   */
  async updateAddress(options) {
    var that = this;
    let {
      mobile,
      address,
      consignee,
      isDefault
    } = options.detail.value
    let addressId = that.data.addressId;

    // 验证收货人
    if (!consignee) {
      wx.showToast({
        title: '收货人不能为空',
        icon: 'none'
      })
      return;
    }

    // 验证联系电话
    if (!mobile) {
      // 提示用户
      wx.showToast({
        title: '联系电话不能为空',
        icon: 'none'
      })
      return;
    }

    // 验证收货地址
    if (!address) {
      wx.showToast({
        title: '收货地址不能为空',
        icon: 'none'
      })
      return;
    }

    if (!isDefault || isDefault != 0 || isDefault != 1) {
      this.setData({
        isDefault: 0
      });
    }

    let result = await request('/address/put', {
      mobile,
      address,
      consignee,
      isDefault,
      addressId
    }, 'POST')
    if (result.code === 200) {
      // 响应成功
      wx.showToast({
        title: '修改地址成功！'
      });
      // 跳转回我的地址列表页面
      wx.navigateBack({
        url: '/addressPackage/pages/myAddress/myAddress'
      })
    } else if (result.code === -1) {
      wx.showToast({
        title: result.msg,
        icon: 'none'
      })
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function(options) {
    let that = this;
    // 判断是否是添加地址的
    if (that.options.addressId == undefined) {
      return;
    }
    let addressId = that.options.addressId;
    that.setData({
      addressId: that.options.addressId
    })
    let result = await request('/address/get', {
      addressId
    })
    that.setData({
      addressInfo: result.data
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})